package org.springframework.cloud.openfeign;//package org.springframework.cloud.openfeign1;


import com.gzsxy.esjy.feign.FeignClientCondition;
import org.springframework.context.annotation.Conditional;
import org.springframework.core.annotation.AliasFor;

import java.lang.annotation.*;

@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Conditional(FeignClientCondition.class)  //@Conditional是Spring4新提供的注解，它的作用是按照一定的条件进行判断，满足条件给容器注册bean。
public @interface FeignClient {
    /**
     * value和name就是互为别名值必须相同的，否则报错
     */
    @AliasFor("name")
    String value() default "";

    /**
     * @deprecated
     */
    @Deprecated
    String serviceId() default "";

    String contextId() default "";

    @AliasFor("value")
    String name() default "";

    String qualifier() default "";

    String url() default "";

    boolean decode404() default false;

    Class<?>[] configuration() default {};

    Class<?> fallback() default void.class;

    Class<?> fallbackFactory() default void.class;

    String path() default "";

    boolean primary() default true;
}